#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QString>
#include <QItemSelection>
#include "ui_helper/scenelistmodel.h"
#include "glrenderer.h"
#include "lightdialog.h"
#include "meshdatadialog.h"
#include "transformationdialog.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
signals:
    void openOBJ(const QString  & filename);
    void openAM(const QString & filename);
    void exportOBJ(const QString & meshName, const QString & filename);
    void exportAM(const QString & meshName, const QString & filename);
public slots:
    void dialogOpenOBJ();
    void dialogExportAM();
    void addModel(const QString & modelName, MeshData*);
private slots:
    void selectionChanged(const QItemSelection &, const QItemSelection &);
private:
    Ui::MainWindow * ui;

    LightDialog * m_LightDialog;
    TransformationDialog * m_TransformationDialog;
    MeshDataDialog * m_MeshDataDialog;

    GLRenderer * m_GLRenderer;
    QString m_Filename;
    SceneListModel * m_SceneListModel;
    QString m_EntityName;
};

#endif // MAINWINDOW_H
